package com.hebeu.gfh.utils;

import java.io.*;

/**
 *
 * @description 文件的读取写入
 * @author Liujianli
 * @date 2023-02-27
 */
public class FileUtil {
    //获取项目的路径
    private static String rootPath = System.getProperty("user.dir");
    /**
     * 向指定文件写入指定信息
     * @param fileName
     * @param text
     * @return
     */
    public static boolean fileWrite(String fileName , String text){
        try {
            //创建fileWriter对象，用来写入字符流，构造函数中的第二个参数true表示以追加形式写文件
            //rootpath是项目的路径，当前情况是模块项目，所以我们需要手动添加一下模块名
            FileWriter fileWriter = new FileWriter(rootPath+fileName,true);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);//缓冲指定文件的输出
            bufferedWriter.newLine();
            bufferedWriter.write(text);
            bufferedWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }

    /**
     * 读取指定文件的内容并输出
     * @param fileName
     */
    public static void fileRead(String fileName){
            try {
                FileReader fileReader = new FileReader(rootPath+fileName);
                BufferedReader bufferedReader = new BufferedReader(fileReader);
                while (bufferedReader.ready()){
                    System.out.println(bufferedReader.readLine());
                }
            }catch (Exception e){
                e.printStackTrace();
            }
    }

    /**
     * 将指定文件的内容写道另一个文件中
     * @param readFile
     * @param writeFile
     */
    public static void fileReadAndWrite(String readFile,String writeFile){
        try {
            FileReader fileReader = new FileReader(rootPath+readFile); //创建fileReader对象，用来读取字符流
            BufferedReader bufferedReader = new BufferedReader(fileReader);//缓冲指定文件的输入
            FileWriter fileWriter = new FileWriter(rootPath+writeFile);//创建fileWriter对象，用来写入字符流
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);//缓冲指定文件的输出
            String readLine; //定义一个String类型的变量，用来每次读取一行
            while (bufferedReader.ready()){
                readLine=bufferedReader.readLine();//读取一行
                bufferedWriter.write(readLine);//写入一行
                bufferedWriter.newLine();
                System.out.println(readLine);
            }
            bufferedWriter.flush();//刷新流
            bufferedWriter.close();
            bufferedReader.close();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    //在指定文件中以日期命名新文件并写入信息（如果文件存在则不需要新建，不存在则需要新建）


}